Computers have become an integral part of the workplace. In many organizations, nearly every employee uses at least one computer. As a result, large businesses typically operate and maintain a very large number of computers. In businesses such as these, it becomes important to automate maintenance chores to any extent that is possible.
Fortunately, local area networks (LANs) and wide-area networks (WANs) have also become common, allowing an organization's various computers to take advantage of centrally provided computer services such as user authentication, file-sharing, email, and various other types of services.
Configuration management systems represent one type of service that can be effectively used in a networked environment to automate the maintenance and management of various disparate computers within an organization. Such a service provides tools for centralized software distribution, asset management, and remote troubleshooting with respect to desktop computers, servers, and server applications. Microsoft® Corporation's “Systems Management Server” is an example of a system designed for this purpose.
FIG. 1 shows a simplified example of computer system 10 in which automated configuration management is implemented. Such a system includes a management server 12 and a plurality of client computers 14. The clients 14 can communicate with each other and with management server 12 through a local-area network or wide-area network 16.
Although it is represented as a single device in FIG. 1, management server 12 might comprise a plurality of individual computers or servers, which might be located in close proximity to each other or might be located at various different locations.
Modern operating systems and application software often provide client-side support for automated configuration management of computers on which the operating systems and application software reside. For example, the Microsoft Windows XP® family of operating systems maintains detailed inventories of both hardware and software components in a database that allows for programmatic query and data collation, both from components within the computer itself and from other computers. Within the Windows® environment, this feature is known as Windows Management Instrumentation or WMI. Change and configuration management software can utilize WMI information to obtain inventories of individual computers and to evaluate whether a computer's configuration should be updated or changed.
In addition to operating system support, individual client computers 14 are typically configured with special-purpose software to support automated configuration management. Such software is normally designed as part of a particular vendor's implementation of an automated configuration management system, for example as part of the Microsoft® Systems Management Server product. The special-purpose software works in conjunction with the client computer's operating system to perform various functions in conjunction with management server 12. Thus, the overall framework of an automated configuration management system includes both server components and client components.
FIG. 2 shows simplified logical components of the configuration management framework implemented by the Microsoft® Systems Management Server product, including components of server 12 and components of implemented within client 14. The illustrated components relate to the inventory and software distribution features of the framework.
Management server 12 has a server inventory and discovery component 20 that operates in conjunction with a client inventory and discovery component 22 is residing on client 14. The client inventory and discovery component 22 gathers identification information and hardware and software inventories of client computer 14, assembles this information into data structures, and provides this information to server inventory and discover component 20 of server 12. The identification information uniquely identifies the client on the managed network and includes properties such as NetBIOS name, IP address, etc. This information is packaged and reported as data structures referred to as discovery data records or DDRs. The management server maintains this information in a database to facilitate asset management functions. Within client 14, much of the information is gathered using the WMI functionality of the Windows XP® operating system. Communications between server 12 and clients 14 utilize predetermined protocols that are proprietary to the particular implementation of the automated configuration management system.
Client computers potentially collect and report over 200 properties, including details such as:                Number and size of disk drives        Type and speed of processor        Amount of memory        Operating system        Monitor and display settings        Computer name and IP address        Information about connected peripherals        Network type        BIOS information        
In addition, each client computer reports a list of all software applications installed on the client, including manufacturer and version information.
Management server 12 includes a policy provider 24 that distributes policies to managed computers such as client 14. Policies indicate configuration settings and software distribution. An example of configuration setting policy is a rule such as “the password on this client computer must be 7–10 characters long and include a non alphabetic character”. Software distribution policies indicate software packages that are available for download and installation, and also include information indicating which types of client can download and install the indicated software packages. A software package is a collection of files, along with instructions for downloading and installing the files.
Client 14 has a policy evaluator 26 that receives the policies from server 12 and evaluates those policies to determine which are targeted to client 14. When policy evaluator 26 determines that a policy is directed to client 14, the policy evaluator passes this information to the appropriate component for action. Configuration setting policies are implemented in a variety of ways—some require changes in the registry, some require making calls to the WMI. If the policy is of software distribution type, then it is passed to an application installation component 28 on client 14. Installation component 28 examines the policy information and determines how to download the associated software package. It then connects to a distribution point 29 associated with server 12 and downloads the software package. After downloading the package, the application installation component 28 installs the packaged software in accordance with the information contained on the downloaded software package.
Existing automated configuration management systems such as the Microsoft® System Management Server work well in the traditional networked environment shown in FIG. 1, where the managed computers comprise desktop or other full-functioned computers. However, there is a growing trend for individual employees within an organization to utilize portable computing devices of more limited functionality than conventional desktop computers. Specifically, handheld devices known as personal digital assistants (PDAs) are becoming very widely used, and their users often connect such devices to corporate networks for tasks such as viewing email or synchronizing contact lists. Network connection can be through an associated desktop computer, or might be though independent network connection, including wireless and/or remote means of access.
Although many organizations do not officially provide technical support for handheld devices such as PDAs, their help desks are receiving an increasing number support calls relating to these devices. Such calls often relate to configuring the handheld devices and to obtaining new updates of applications that are installed on the devices.
There are many environments where computer or computer-like devices having less than full desktop functionality are used in large numbers. Factory automation controllers, electronic point of sale terminals, gas station pumps, etc. are examples of commonly used devices that are frequently networked, but do not possess the full functionality and resources of a traditional desktop computer. Microsoft® Corporation has designed a special version of its Windows® operating system for such limited-resource devices, know as the Windows CE® operating system.
In the past, limited resource devices such as PDAs and the other examples mentioned above have not been able to participate in automated configuration management. Existing configuration management solutions typically impose fairly significant processing tasks on the managed client computers, and the required client-side software is typically unable to run on the limited-resource devices such as PDAs. Client software specifically designed for these devices could conceivably be designed for use with existing configuration management systems, but would likely push or exceed the limits of computational resources available on these devices.